#include "UdpServer.hpp"
#include "Dictionary.hpp"

using namespace UdpServerModule;
int main()
{
    // 创建一个由智能指针所管理的字典对象
    std::shared_ptr<dictionary> dict_ptr = std::make_shared<dictionary>();
    dict_ptr->LoadDictionary(); // 加载字典数据

    // 我们先创建一个服务器对象，并用智能指针管理它
    std::unique_ptr<UdpServer> svr_ptr = std::make_unique<UdpServer>(std::string("127.0.0.1"), 8080, [dict_ptr](const std::string &word) -> std::string
                                                                     { return dict_ptr->Translate(word); }); // 回调函数的方式传递我们的翻译函数

    // 那我们是不是要先初始化一下我们的服务器对象呢？
    svr_ptr->InitServer(); // 假设UdpServer类有一个InitServer方法来初始化服务器
    // 初始化好了，我们是不是应该启动我们的服务端。由于服务端一般都是启动了不会停止的，所以我们可以使用while循环
    svr_ptr->Start();
}